Data Storage Devices (DSDs) are often used to record data on or to reproduce data from a storage media such as, for example, a rotating magnetic disk or a solid-state memory. In some cases, a DSD or a portion of the storage media in a DSD may become damaged or otherwise unreliable for storing data. To help protect against data loss, a data storage system or a DSD can store redundant data in different storage locations to provide a certain level of data reliability.
In one example, a data storage system can use erasure coding to protect against data loss by storing data as erasure coded shards in different storage locations. In erasure coding, data is broken into fragments that can be each expanded and encoded with redundant data to form an erasure coded shard.
Depending on the number of shards, a predetermined level of data reliability or durability can be achieved since the original data object can be reconstructed using less than all of the data shards. This can allow for the loss of some data shards while still being able to recover the original data. For example, where a data object is broken into thirteen fragments, the fragments can be encoded into eighteen erasure coded shards to provide for a predetermined level of data reliability referred to as a thirteen of eighteen configuration, or Erasure Coding (EC) 13/18. In this example, the eighteen shards are written in different storage locations in the data storage system and the original data object can be reconstructed using any thirteen of the eighteen data shards. This can allow for the retrieval of up to five of the eighteen shards to fail while still being able to reconstruct the original data.